home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
callm120.zip
/
CALLME.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-09-30
|
10KB
|
315 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer TINTEGER004(99)
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String TSTRING008(7)
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
;------------------------------------------------------------------------------
Cls
GetUser
If (MinLeft() < "5") Then
PrintLn "@X10┌────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1CWe are sorry but you need at least 5 minutes left to run this door and you @X19│@X0F"
PrintLn "@X10│ @X1Conly have minute(s) left. Please try this door when you have more time. @X19│@X0F"
PrintLn "@X10└@X19────────────────────────────────────────────────────────────────────────────┘@X0F"
AnsiPos 13, 3
Print "@X71@X0F", MinLeft()
Newlines 2
End
Endif
FOpen 1, PPEPath() + PPEName() + ".CFG", 0, 0
For INTEGER002 = 1 To 7
FGet 1, TSTRING008(INTEGER002)
Next
FClose 1
For INTEGER002 = 1 To 7
TSTRING008(INTEGER002) = RTrim(Left(TSTRING008(INTEGER002), 23), " ")
Next
STRING009 = TSTRING008(1) + TSTRING008(2)
STRING009 = Strip(STRING009, " ")
For INTEGER003 = 1 To Len(STRING009)
TINTEGER004(INTEGER003) = Asc(Mid(STRING009, INTEGER003, 1))
Next
INTEGER005 = TINTEGER004(1) + TINTEGER004(2) + TINTEGER004(3) + TINTEGER004(4) + TINTEGER004(5) + TINTEGER004(6) + TINTEGER004(7) + TINTEGER004(8) + TINTEGER004(9) + TINTEGER004(10) + TINTEGER004(11) + TINTEGER004(12) + TINTEGER004(13) + TINTEGER004(14) + TINTEGER004(15) + TINTEGER004(16) + TINTEGER004(17) + TINTEGER004(18) + TINTEGER004(19) + TINTEGER004(20) + TINTEGER004(21) + TINTEGER004(22) + TINTEGER004(23) + TINTEGER004(24) + TINTEGER004(25) + TINTEGER004(26) + TINTEGER004(27) + TINTEGER004(28) + TINTEGER004(29) + TINTEGER004(30) + TINTEGER004(31) + TINTEGER004(32) + TINTEGER004(33) + TINTEGER004(34) + TINTEGER004(35) + TINTEGER004(36) + TINTEGER004(37) + TINTEGER004(38) + TINTEGER004(39) + TINTEGER004(40) + TINTEGER004(41) + TINTEGER004(42) + TINTEGER004(43) + TINTEGER004(44) + TINTEGER004(45) + TINTEGER004(46) + TINTEGER004(47) + TINTEGER004(48) + TINTEGER004(49) + TINTEGER004(50) + TINTEGER004(51) + TINTEGER004(52) + TINTEGER004(53) + TINTEGER004(54) + TINTEGER004(55) + TINTEGER004(56) + TINTEGER004(57) + TINTEGER004(58) + TINTEGER004(59) + TINTEGER004(60) + TINTEGER004(61) + TINTEGER004(62) + TINTEGER004(63) + TINTEGER004(64) + TINTEGER004(65) + TINTEGER004(66) + TINTEGER004(67) + TINTEGER004(68) + TINTEGER004(69) + TINTEGER004(70) + TINTEGER004(71) + TINTEGER004(72) + TINTEGER004(73) + TINTEGER004(74) + TINTEGER004(75) + TINTEGER004(76) + TINTEGER004(77) + TINTEGER004(78) + TINTEGER004(79) + TINTEGER004(80)
INTEGER006 = INTEGER005 * 952
If (INTEGER006 == TSTRING008(3)) STRING010 = "YES"
Log "CallMe Entered at -> " + STRING012, 0
Cls
Newlines 5
PrintLn ""
PrintLn ""
PrintLn " @X09┌─────┐ ┌──────┐ ┌─┐ ┌─┐ ┌───────┐ ┌─────┐"
PrintLn " │ ┌─┐ │ │ ┌──┐ │ │ │ │ │ │ ┌┐ ┌┐ │ │ ┌───┘"
PrintLn " │ │ └─┘ │ └──┘ │ │ │ │ │ ┌────┐ │ ││ ││ │ │ └─┐ "
PrintLn " │ │ ┌─┐ │ ┌──┐ │ │ │ │ │ └────┘ │ │└─┘│ │ │ ┌─┘ "
PrintLn " │ └─┘ │ │ │ │ │ │ └──┐ │ └──┐ │ │ │ │ │ └───┐"
PrintLn " └─────┘ └─┘ └─┘ └────┘ └────┘ └─┘ └─┘ └─────┘"
PrintLn ""
PrintLn " @X09v1.20"
PrintLn ""
PrintLn " @X0C(c)1996 Practical Computer Services@X0F"
Delay (3 * 182) / 10
If (Upper(TSTRING008(7)) == "NONE") Goto LABEL001
Cls
PrintLn "@X10┌────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1BPlease enter the password for access to CallMe -> @X19│@X0F"
PrintLn "@X10└@X19────────────────────────────────────────────────────────────────────────────┘@X0F"
AnsiPos 53, 2
InputStr "@X1B_", STRING007, 26, 13, Mask_Ascii(), 0
If (Upper(STRING007) == Upper(TSTRING008(7))) Goto LABEL001
Newlines 2
PrintLn "@X10┌────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1CWe are sorry, you have entered an incorrect password, access denied. @X19│@X0F"
PrintLn "@X10└@X19────────────────────────────────────────────────────────────────────────────┘@X0F"
Delay (5 * 182) / 10
End
:LABEL001
STRING006 = Len(TSTRING008(5))
STRING015 = Len(TSTRING008(4))
STRING005 = STRING006 - STRING015 - 2
BOOLEAN001 = 0
STRING002 = TSTRING008(6)
STRING003 = Chr(13)
:LABEL002
Cls
PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1Ev1.20 @X1ACALL-ME - The Call Back Utility @X1E(c)1996 Practical Computer @X19│@X0F"
PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1BThis program allows us to call you back. There are many reasons why we @X19│@X0F"
PrintLn "@X10│ @X1Bwould want to do this, one is that it is a local call for us to call you, @X19│@X0F"
PrintLn "@X10│ @X1Bor another one is that we require absolute security, another is that we @X19│@X0F"
PrintLn "@X10│ @X1Bare great people. This is very easy to complete, you will be asked for @X19│@X0F"
PrintLn "@X10│ @X1Byour phone number, please enter it in the format of @X1EXXX-XXX-XXXX@X1B. Then @X19│@X0F"
PrintLn "@X10│ @X1Bwe will drop carrier, and give you a callback. When you see the word @X19│@X0F"
PrintLn "@X10│ @X1B@X1ERING@X1B appear on your screen, you will need to type @X1CATA @X1B(then the enter @X19│@X0F"
PrintLn "@X10│ @X1Bkey). After that, there will be a slight pause, maybe 10 to 15 seconds @X19│@X0F"
PrintLn "@X10│ @X1Bafter that, you will be back on the BBS! Have a good time. @X19│@X0F"
PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────@X19┘@X0F"
Newline
STRING011 = "Y"
InputYN " Do you wish to continue with the Call Back (Y/n)@X0A ", STRING011, 10
Newline
If (Upper(STRING011) == "N") Then
STRING012 = Time()
Log "Voluntary CallMe exit at -> " + STRING012, 0
End
Endif
If (U_BDPhone == " ") Goto LABEL003
STRING013 = "Y"
PrintLn ""
Print " @X0C", U_BDPhone
InputYN " @X0A <--- Is this number correct (Y/n) ", STRING011, 10
If (Upper(STRING011) == "Y") Then
STRING014 = U_BDPhone
Endif
If (Upper(STRING011) == "Y") Goto LABEL004
:LABEL003
Newlines 2
InputStr " @X0AEnter the number we can call you back at (ex " + TSTRING008(5) + ")", STRING014, 10, 14, "0123456789-", 0
If (STRING014 == 0) Goto LABEL002
If (Len(STRING014) < Len(TSTRING008(5))) Goto LABEL002
:LABEL004
STRING014 = Strip(STRING014, "-")
STRING014 = Strip(STRING014, " ")
STRING014 = Strip(STRING014, "(")
STRING014 = Strip(STRING014, ")")
If (Left(STRING014, STRING015) == TSTRING008(4)) Then
STRING014 = Right(STRING014, STRING005)
Goto LABEL005
Endif
:LABEL005
Newlines 2
PrintLn "@X10┌────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1BHere we go, remember when you see the word @X1CRING @X1Byou need to type @X1CATA@X1B & tap @X19│@X0F"
PrintLn "@X10│ @X1Bthe enter key. @X1DRelax, it will work! @X19│@X0F"
PrintLn "@X10└@X19────────────────────────────────────────────────────────────────────────────┘@X0F"
CdChkOff
DtrOff
KbdChkOff
Delay 3
DtrOn
Delay 1
STRING001 = STRING002 + STRING014 + STRING003
WaitFor "CONNECT", BOOLEAN001, 1
For INTEGER001 = 1 To 3
SendModem STRING001
WaitFor "CONNECT", BOOLEAN001, 40
If (BOOLEAN001) Goto LABEL006
Next
STRING004 = "Unsuccessful (No answer/connect)"
Goto LABEL007
:LABEL006
KbdChkOn
CdChkOn
Cls
StartDisp 1
PrintLn
PrintLn "@X02@BOARDNAME:76C@@POS:79@@POFF@"
PrintLn "@X10┌────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1EYou have been called back. Enjoy the BBS! @X19│@X0F"
PrintLn "@X10└@X19────────────────────────────────────────────────────────────────────────────┘@X0F"
For INTEGER007 = 4 To 0 Step -1
AnsiPos 50, 4
PrintLn "@X1BPlease wait for ", INTEGER007, " seconds@X0F"
Delay (1 * 182) / 10
Next
AnsiPos 50, 4
PrintLn "@X1BThanks for Using CallMe(tm) @X19│@X0F"
KeyFlush
STRING004 = "SUCCESSFUL"
:LABEL007
If (STRING010 <> "YES") Then
INTEGER008 = MinLeft() - 5
AdjTime -INTEGER008
PrintLn ""
PrintLn "@X70┌────────────────────────────────────────────────────────────────────────────@X7F┐@X0F"
PrintLn "@X70│ @X71Please help your SysOp register this program, Registration will remove the @X7F│@X0F"
PrintLn "@X70│ @X71@X745 minute time limit@X71, and remove this annoying message. Since your SysOp @X7F│@X0F"
PrintLn "@X70│ @X71thinks enough of you to allow you to be called back, why not help him out @X7F│@X0F"
PrintLn "@X70│ @X71by sending him a check for the @X7A$10.00 @X71registration fee? @X7F│@X0F"
PrintLn "@X70└@X7F────────────────────────────────────────────────────────────────────────────┘@X0F"
Endif
Log "CALLBACK " + STRING004 + " to " + STRING014 + " at " + String(Time()), 0
Newlines 2
End
PrintLn "Reg # 00000000"
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 4 End
; 5 Cls
; 24 Goto
; 36 Let
; 2 Print
; 56 PrintLn
; 18 If
; 1 FOpen
; 1 FClose
; 1 FGet
; 1 StartDisp
; 1 GetUser
; 1 AdjTime
; 3 Log
; 2 InputStr
; 2 InputYN
; 1 DtrOn
; 1 DtrOff
; 1 CdChkOn
; 1 CdChkOff
; 5 Delay
; 1 SendModem
; 2 Newline
; 6 Newlines
; 2 WaitFor
; 1 KbdChkOn
; 1 KbdChkOff
; 4 AnsiPos
; 1 KeyFlush
;
;
; ■ Functions used :
;
; 4 -
; 4 *
; 3 /
; 98 +
; 3 -
; 9 ==
; 1 <>
; 7 <
; 5 <=
; 10 >=
; 10 !
; 10 &&
; 5 ||
; 6 Len(
; 6 Upper()
; 1 Mid()
; 2 Left()
; 1 Right()
; 1 Chr()
; 1 Asc()
; 1 RTrim()
; 2 Time()
; 5 Strip()
; 1 String()
; 1 Mask_Ascii()
; 1 PPEPath()
; 3 MinLeft()
; 1 PPEName()
;
;------------------------------------------------------------------------------
;
; Analysis flags : ABM
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; M - Send text to modem only ■ 4
; Some informations are sent only to the modem, not to the local
; screen, this is a well known way to make stealth backdoors, Check!
; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 5 For/Next
; 0 While/EndWhile
; 5 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------